The Info Menu*55*

Items on this menu:

o display information about different categories of elements

o control visibility and propagation of comments

o control visibility of class hierarchies*55*

o display error and warning messages

o check program syntactic correctness

o display information about available memory

o allow the user to specify certain interface preferences *55*

Display of Information*56*

The ˙Info… dialog has the following format:

Just below the title bar of the ˙Info… dialog is a pop-up menu that specifies the category of information displayed. 

In the scrolling list:*56*

o
The items are displayed in alphabetical order, except for Mac Fields which are displayed in the order in which they appear in the Mac structure.

o
Typing a sequence of characters selects the first item in the scrolling list that has this character sequence as its prefix, and scrolls it into view.  

o
If an item is selected, information is displayed in the info panel.

o
Multiple selection is not allowed.

The Types button is applicable only for information concerning primitives, as described below.*56*

The pop-up menu labeled Transfer pastes the currently selected item in the scrolling list into the currently selected Prograph element. If the top window under the dialog has an active text editor (that is, selecting a Prograph element selects its name or textual label, thus activating a text editor on that text) and an item in the scrolling list is selected, selecting a Transfer menu item pastes the selected name into the edited string in the usual way and brings the window to the front. The Name menu item is available for all kinds of information.  The other three Transfer menu items are applicable only for method and attribute information, and are explained below.

     Primitives*57*

     Scrolling list:
primitives

     Info panel:     
inputs/outputs

                             function of primitive

The Types button is enabled only for Primitives information. Clicking this toggles the description of inputs and outputs in the info panel between descriptive names for inputs and outputs used in describing the function of the primitive, and the data types of inputs and outputs.

Data Types*57*

Scrolling list: 
supplied Prograph data types

Info panel:
      range of allowable values 

                         a sample value 

Universal Methods*58*

Scrolling list: 
universal methods

Info panel:      
comment of method

Classes*59*

Scrolling list: 
classes

Info panel: 
      comment of class 

Methods*59*

Scrolling list: 
methods of previously selected class

Info panel:      
comment of method

The Methods menu item is enabled only after the Classes menu item has been chosen and a class has been selected.

The name transferred depends on which of the four Transfer menu items is selected. 
The string transferred for each item is defined below. In these descriptions, <name> is the item selected in the scrolling list and <class> is the owning class.*59*

          Name <name>*60*

          //Name //<name> 

          /Name /<name> 

          C/Name <class>/<name>

Attributes*60*

Scrolling list:
attributes of previously selected class

Info panel:      
comment of attribute

The Attributes menu item is enabled only after the Classes menu item has been chosen and a class has been selected. 

The name transferred depends on which of the Transfer menu items is selected. Only the Name and /Name formats are available for transferring attribute names. The string transferred for each item is defined below. In these descriptions, <name> is the item selected in the scrolling list.

          Name <name>

          /Name /<name> 

Persistents*60*

Scrolling list:
persistents

Info panel: 
     comment of persistent

Mac Methods*61*

Scrolling list: 
all implemented Mac Methods (toolbox calls)

Info panel: 
     input/output types

                          reference to Inside Macintosh 
_______________________________________________________
NOTE:  Mac Methods, Constants, Globals, Structures an d Fields are implemented as externals (refer to the section on “External C and Pascal Code” in Chapter 9). Any external routines, constants, globals, structures and fields will appear in these “Mac” lists.
-------------------------------------------------------

Mac Constants*61*

Scrolling list: 
all implemented Mac Constants

Info panel: 
     constant value 

Mac Globals*62*

Scrolling list: 
all implemented Mac globals

Info panel:      
type

                          offset from low memory, or from register A5 for QuickDraw globals

Mac Structs*63*

Scrolling list: 
all Macintosh records accessible from Prograph

Info panel:      
size of structure in bytes 

Mac Fields*63*

Scrolling list: 
fields of previously-selected Mac structure, sorted by offset

Info panel: 
     data type

                          type of record to which field belongs

                          offset of field in record

                          size of field in bytes

The Mac Fields menu item is enabled only after the Mac Structs menu item has been chosen and a structure has been selected. *63*

Comment Visibility*64*

Show Comments, Hide Comments*64*

These items respectively display and hide all comments on elements in the front edit window.

Comment Propagation*64*

Propagate Comments, Strip Comments*64*

Comments are automatically propagated only for newly-created methods and Local operations. That is, comments added to the terminals or roots of existing operations will not propagate to the corresponding roots and terminals of the input and output bars of the associated methods. 

To propagate comments associated with the terminals (or roots) of an existing operation or Local operation to the corresponding roots of the input bar (or terminals of the output bar) of its associated method or Local, select the operation and choose 
Propagate Comments. *64*

Strip Comments deletes comments from the terminals (or roots) of a selected operation, or from the roots (or terminals) of a selected input bar (or output bar). This menu item does not, however, perform the inverse of Propagate Comments:  comments stripped from a selected operation are not deleted from the corresponding roots of the input bar (or terminals of the output bar) of that method or Local (and vice versa).

Class Hierarchy*64*

Show Classes, Hide Classes*64*

If the icon of a class with hidden subclasses is selected, choosing Show Classes displays the subclasses. If a subclass is selected, choosing Hide Classes hides the subclass icon. A class can only be hidden if all its subclasses are hidden.

Errors / Program Correctness / Options*65*

Last Error…*65*

Displays a dialog explaining the last error encountered (see the example dialog below).

Clicking on the OK button dismisses the dialog, and no action is taken in the last front window. 

Check Program*65*

Does a syntax check on the current Prograph program. If an error is encountered (such as an unnamed method or operation, or a Next Case control in the last case of a method), the interpreter’s normal error mechanism will be invoked: the window with the questionable element will be opened, the element will be highlighted and flashing, Prograph will beep twice, and an error message will be available. If no errors are encountered, nothing will happen.

Memory Status*65*

Displays a dialog showing the amount of free and reserve memory.

The reserve memory is allocated when Prograph is launched, as well as whenever New is selected from the File menu. If a request for memory cannot be satisfied with the available free memory, the reserve memory is released and a warning dialog is displayed.

Options…*66*

Displays a dialog in which various parameters of the Prograph environment can be set. 

Initial File*66*

     An editable-text field that specifies the name of a file to be loaded automatically.

Cmd-click to create Prograph objects*66*

     The Cmd-click option allows you to set the way in which you create a new Prograph 
     element, either by simple clicking or by Cmd-clicking in space.

If you choose the Cmd-click option and you are working in the Prograph Classic editor: 
*67*
o
Cmd-click in space creates a new Prograph element,

o
Click in space deselects any selected element(s),

o
Cmd-click on an element toggles comments between visible and 
 invisible.*67*

If you choose the Cmd-click option and you are working in the Prograph Classic Application Builder’s Window editor: 

o
Click in space deselects any selected element(s),*67*

o
Cmd-click-drag in space creates and sizes a new window item,

o
Option-Cmd-double-click opens the Window Specification editor.

o
Option-Cmd-drag moves the window, or resizes it if the click 
  happens in the grow-box area.*67*

When creating a datalink (by holding down the Option key), you must also press the Command key and click to create a new root, terminal, oper, or class.

File Preferences: Load File on New*67*

     The initial file is loaded whenever New is chosen from the File menu.

File Preferences: Load File At Start Up*67*

     The initial file is loaded whenever Prograph is launched.

File Preferences: Make Backups*67*

     This box is checked by default. If it is checked, Prograph provides the following 
     backup procedure when saving files.

     When a file «A» is saved for the first time, «A» in memory is saved as «A» on 
     disk.

     When «A» is saved again, «A» on disk is renamed to «A.bak», and «A» in memory 
     is saved as «A» on disk.

     When «A» is saved again, «A.bak» on disk is deleted, «A» on disk is renamed to 
     «A.bak» , and «A» in memory is saved as «A» on disk.*67*

     If «A» is saved and for some reason the save is aborted, the (possibly garbaged) 
     «A» on disk is deleted and «A.bak» is renamed to «A».

File Preferences: Run on Launch*68*

     If this box is checked (the default), double-clicking on a Prograph program 
     document will launch Prograph and also start the program running. Holding down 
     either the mouse button or the command key while Prograph is launching will 
     defeat this, bringing up the Prograph editor instead.

     If this box is not checked, double-clicking a Prograph document will launch 
     Prograph with the editor active. In this case holding down the mouse button or the 
     command key will launch Prograph with the program running. 

Message Preferences: Error Messages*68*

     When an error occurs, an explanatory dialog appears whenever an error is 
     signaled by a beep. (When unchecked, the explanatory dialog is still available by
      choosing Last Error… from the Info menu.)

Message Preferences: Warning Messages *68*

     When checked, any destructive action displays an explanatory dialog that allows 
     the user to either proceed with or abort the action.

Message Preferences: Startup  Messages *68*

     When Prograph launches, it checks its table of references to externals files 
     against the actual files present in the Prograph Extensions folder. If there has been 
     any change in the contents of this folder, the table is rebuilt.

     If the Startup Messages option has been checked and you double-click a Prograph 
     document to launch Prograph, and it needs to rebuild this table, it will display the 
     names of the files being loaded in a small rectangular window. If the Startup 
     Messages option is unchecked, this display will not take place. This may be 
     desirable if you expect users to be running your application in interpreted mode, 
     and don’t want them to see this message. 

     If you double-click the Prograph Classic application to launch Prograph, the 
     startup messages will always be displayed below the Prograph splash screen if 
     Prograph needs to load in any externals.*68*

Info Window(s): Multiple Windows*69*

     When checked, multiple ˙Info… dialogs can be open at the same time. 

Method Execution: Close Windows*69*

     When checked, all Prograph windows close whenever Execute Method is selected 
     from the Exec menu. 

Constant Truncation*69*

     An editable-text field that specifies the maximum number of characters displayed 
     for Constants and Matches in Case windows. If this value is altered, all Constants 
     and Matches in open Case windows are resized.

Attribute Truncation *69*

     An editable-text field that specifies the maximum number of characters displayed 
     for the value of an attribute in Attributes windows. If this value is altered, the 
     values of attributes in all Attributes windows are immediately updated.

OK*69*

     Clicking this button puts the displayed settings into effect, but only for the current 
     session. 

Save Settings*69*

     Clicking this button not only puts the displayed settings into effect for the current 
     session, but also saves them as a feature of the Prograph  Classic application.

Cancel*69*

     Dismisses the dialog without affecting environment parameters.

The Windows Menu*70*

Universal Methods, Classes, Persistents*70*

Selecting these opens the Universal methods, Classes, and Persistents windows respectively.

Methods…, Attributes…*70*

A dialog is opened displaying a scrolling list of classes. A class can be selected from this list, and its Methods (or, respectively, Attributes) window opened.

Local Heritage…*70*

This menu item is only available if the case window of a local is the front window. It opens a dialog displaying the path from the Local to the top-level method containing it. The path is displayed in a scrolling list with the top-level containing method at the top. In the example below, the Local read disk occurs in a case of the Local get files, which occurs in a case of the Local open file, which occurs in a case of the universal method file browser.

Select*71*

If a method in the hierarchy is selected, clicking this button dismisses the dialog and opens the first case of the selected method. Double-clicking on an item in the list is equivalent to selecting it and clicking the Select button.

Cancel*71*

This button dismisses the dialog.  

Stack*71*

Opens the Stack window. 

Close Window*71*

Closes the currently selected window.

Remember Windows*71*

Records the locations and sizes of the edit windows currently displayed.  

Restore Windows*71*

Restores the edit windows last recorded by Remember Windows.

Tidy Icons*71*

Reorders the icons in a window, aligning them in horizontal rows and spacing them to avoid overlapping. If comments are hidden, the icons will be arranged with no regard for the comments.

Add Scroll Page, Remove Scroll Page*72*

Increases (or reduces) the size of the window vertically by one page.  Page size is specified in the Page Setup… menu item of the File menu.